Cloud Native
クラウドネイティブ_
/mrsekut-book-4046053550/298 (4-2 クラウドネイティブアーキテクチャ)
GPT-4.icon
「クラウドネイティブ(Cloud Native)」という用語は、クラウド環境を前提として設計・開発・運用されるアプリケーションやシステムのアプローチを指します。
単なるクラウド上で動くアプリではなく、クラウドの特性(スケーラビリティ・柔軟性・自動化など)を最大限に活かす設計思想が根底にあります。
主な特徴・構成要素(代表的な定義:CNCF)
CNCFによると、クラウドネイティブの主要要素は以下のようになります:
1. コンテナ(Containers)
アプリケーションを軽量な単位でパッケージングして移植性を高める。
2. マイクロサービス(Microservices)
単一の大きなアプリケーションではなく、小さなサービス群に分割することで、独立して開発・デプロイ・スケールが可能に。
3. 動的オーケストレーション(Dynamic Orchestration)
Kubernetesなどによって、サービス間の連携、スケーリング、フェイルオーバーなどを自動化。
4. 宣言的インフラ(Declarative Infrastructure)
IaC(Infrastructure as Code)などにより、インフラ構成をコードで管理し再現性と自動化を実現。
メリット
スケーラブル(自動スケーリング可能)
可用性が高い(障害からの回復が容易)
デプロイが迅速(CI/CDとの親和性が高い)
柔軟な開発(変更を小さく、頻繁に行える)
代表例
Serverless
検討の方針として
/mrsekut-book-4046053550/303
新規プロジェクトなら基本的にマネージド/サーバレスを軸に検討し、
要件に合わなければコンテナを適用する、という流れで考える